package org.jeecg.modules.activiti.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.activiti.entity.ActBusiness;
import org.jeecg.modules.activiti.entity.ActZprocess;
import org.jeecg.modules.activiti.vo.ProcessNodeVo;

import java.util.List;

/**
 * @Description: 流程定义扩展表
 * @Author: pmc
 * @Date:   2020-03-22
 * @Version: V1.0
 */
public interface IActZprocessService extends IService<ActZprocess> {

    void setAllOldByProcessKey(String processKey);

    void setLatestByProcessKey(String processKey);

    String startProcess(ActBusiness actBusiness);

    void sendActMessage(LoginUser fromUser, LoginUser toUser, ActBusiness act, String taskName, Boolean sendMessage, Boolean sendSms, Boolean sendEmail);

    void sendMessage(String actBusId, LoginUser fromUser, LoginUser toUser, String title, String msgText, Boolean sendMessage, Boolean sendSms, Boolean sendEmail);

    ProcessNodeVo getNode(String nodeId);

    List<LoginUser> getNodetUsers(String nodeId);

    String getUserByNodeid(String nodeId);

    ProcessNodeVo getFirstNode(String procDefId);

    ProcessNodeVo getNextNode(String procDefId, String currActId);

}
